1. Field of the Invention
The invention relates to an information reproducing apparatus for reading information from a recording medium such as an optical disc, a magnetooptic disc, or like recording media.
2. Related Background Art
Hitherto, magnetic discs, optical discs, and like recording media have been known as information recording media of the disc type. In such a disc-shaped recording medium, for instance, a spiral track is divided into a plurality of sectors and information is recorded on a sector unit basis.
It is known that an error rate of information recording on an optical disc is high. Therefore, a process to raise the reliability of data is executed by adding an error correction code (ECC) to the data. Just after recording data into the sector, processes to reproduce the data recorded in the sector and to verify whether the data could be correctly recorded or not are executed. When an error occurs, the data are again recorded to the same sector or the data are recorded to another alternate sector, thereby enabling the defective sector to be relieved. Such an adding process of the correction code, a deleting process, or a verifying process is executed by an ECC circuit, which will be explained hereinafter.
Such an information reproducing apparatus using the optical disc records or reproduces information in accordance with an instruction of a host apparatus as an upper control apparatus. Generally, in many cases, the speed when data are transferred from the host apparatus to the information recording and reproducing apparatus differs from the actual recording speed of the data to the optical disc. The information recording and reproducing apparatus, therefore, has a buffer memory and the buffer memory is used to temporarily store the data from the host apparatus or to temporarily store the reproduction data from the optical disc. In the case of performing the verifying process as mentioned above, the buffer memory is also used to preserve the data until the verifying process is finished in order to again record the data of the sector having an error when an error occurs.
In order to raise the speed of the reproducing process from the disc, there is generally used a method whereby the data of each sector which has been read into the buffer from the disc are transferred to the host apparatus instead of using a method whereby all of the data designated from the host apparatus are read into the buffer from the disc and, after that, the data are transferred to the host. That is, the data transfer from the disc to the buffer and the data transfer from the buffer to the host apparatus are executed in parallel and all of the data are transferred to the host apparatus, thereby reducing the reading time and transfer time.
The above conventional method will now be described with reference to FIGS. 11A and 11B. FIGS. 11A and 11B show states of the reproduction data stored into the buffer. A hatched portion indicates the data which have been read out of the disc and are not transferred yet to the host. A host transfer pointer indicates a position of the data in the buffer which are transferred to the host. The value of the pointer are updated when the data are transferred. A read pointer indicates a position to store the reproduction data from the disc. The value of the read pointer are updated when the data are stored. As shown in FIG. 11B, the buffer is a ring buffer. The host transfer pointer or read pointer is moved to the head of the buffer when it reaches the end of the buffer.
The reproducing process from the disc and the data transferring process to the host are performed in parallel while checking whether the buffer is full or empty by comparing the values of those two pointers. That is, when the read pointer circulates one loop and catches up the host transfer pointer, it is determined that the buffer is full, so that the reproducing process from the disc is interrupted. When the host transfer pointer catches up to the read pointer, it is decided that the buffer is empty, so that the data transfer to the host is interrupted.
A prereading process of the data is generally executed to raise the speed of the reading process. The data prereading process denotes a process in which the data block next to the read data block designated from the host apparatus is stored into the buffer subsequent to the reading process of the designated data block and, when a read command of the next data block is sent from the host, the reproduction from the disc is not performed and the data stored in the buffer is transferred to the host. When the number of sequential accesses to the disc is large, the prereading process improves the throughput. A practical example of the prereading process will now be described with reference to FIGS. 9 and 10. FIG. 9 shows a read data block of the disc which is stored into the buffer. There is a data block d.sub.2 which is preread subsequent to a data block d.sub.1 designated from the host. FIG. 10 shows a storing state of the data in the buffer. The area in the buffer is divided into an area B.sub.1 which is used in the ordinary reading process and an area B.sub.2 to store the preread data. The reason why the buffer is divided into two areas is to make the data handling easy. The host designation data block d.sub.1 in FIG. 9 is stored into the ordinary data storing area B.sub.1. The preread data block d.sub.2 is stored into the preread data storing area B.sub.2.
The method of discriminating whether the buffer is full or empty by comparing the host transfer pointer and the read pointer as described in FIGS. 11A and 11B, however, cannot be performed so long as the prereading process is executed. This is because when the read pointer indicative of the storing position of the reproduction data continuously changes as shown in FIG. 11A, it can be compared with the host transfer pointer, but when the preread data is stored into the buffer, the read pointer does not continuously change as shown at d.sub.2 in FIG. 10, so that it cannot be compared with the host transfer pointer. In other words, when the operator tries to execute the preread data process, the reproducing process from the disc and the data transfer process to the host cannot be executed in parallel, so that the processing speed becomes slow.
The memory area of the optical disc is divided into a data area to record data and an alternate area which is alternated when a defect exists in the data area. FIG. 12 is a diagram of a format of the optical disc. It is now assumed that a read request of the read block 1 (comprising a plurality of sectors) in the data area is sent from the host apparatus. The information reproducing apparatus moves the reading head to the head sector of the read block 1 and sequentially reads out the data from the head sector and stores the data into the buffer.
At the same time, the data is sequentially transferred to the host apparatus from the data which has already been stored in the buffer and has been error corrected. FIG. 13A shows a state of the buffer at that time.
A hatched portion in the buffer indicates a portion in which the data reading process from the disc and the error correction were finished. On the other hand, the read pointer indicates an address to subsequently store the data from the disc. The host transfer pointer indicates an address to subsequently transfer the data to the host apparatus.
In the conventional information reproducing apparatus, a check is made to see if the buffer is full or empty by comparing the host transfer pointer and the read pointer as mentioned above. That is, when the host transfer pointer catches up to the read pointer, the buffer is determined to be empty and the data transfer to the host apparatus is interrupted. On the contrary, when the read pointer circulates one loop and catches up to the host transfer pointer, the buffer is decided to be full and the reading process from the disc is interrupted.
In the above conventional example, however, there are drawbacks such that the full/empty states of the buffer cannot be managed in the following cases and the reading process from the disc to the buffer and the data transfer from the buffer to the host cannot be executed in parallel and the processing speed becomes slow.
Such an example will be explained with reference to FIGS. 12 and 13B. A defective sector 1 is included in a read block 2 in FIG. 12. An alternate sector for the defective sector 1 is the alternate sector 1 in the alternate area. It is now assumed that a read request of the read block 2 is sent from the host apparatus. Since the moving time of a reading head of the information reproducing apparatus is generally slow, there is known a method whereby in order to raise the speed of the reading process including the defective sector, the alternate sector of the disc is preread into the buffer and the number of moving times of the reading head is reduced (for example, U.S. Pat No. 4,849,956). FIG. 13B shows a state in the buffer in the case when the read block 2 in FIG. 12 has been read by the above method.
In FIG. 13B, a hatched portion indicates data which have been read out of the disc. The alternate sector 1 for the defective sector 1 is previously stored into the area of the preread data 1 in the buffer. The normal sector of the read block 2 is stored into another area different from the area of the preread data 1. In such a case, the host transfer pointer indicative of the address to which the data is transferred to the host apparatus does not indicate the continuous area. It is, accordingly, impossible to check whether the buffer is full or empty by comparing the host transfer pointer and the read pointer.